#include<sys/types.h>
#include<arpa/inet.h>
/*************************
数据链路层头
*************************/
#define ETH_LEN 6
#define JP_ETH_LEN 14
#define IPv4 0x0800
#define ARP 0x0806
#define PPPoE 0x8864
#define TAGQ 0x8100
#define IPv6 0x86dd
#define MPLS 0x8847
struct eth_header{
        u_char eth_dhost[ETH_LEN];
        u_char eth_shost[ETH_LEN];
        u_short eth_type;
};
/*****************************
IP报文头
*****************************/
#define JP_IPH_LEN(ip) (((ip)->ip_vhl)&0x0f)*4
#define JP_IPV(ip) (((ip)->ip_vhl)>>4)
struct jp_ip_header{
	u_char ip_vhl;
	u_char ip_tos;
	u_short ip_len;
	u_short ip_id;
	u_short ip_offset;
	u_char ip_ttl;
	u_char ip_p;
	u_short ip_sum;
	struct in_addr ip_src,ip_dst;
};
//IP协议
#define ICMP 1
#define IGMP 2
#define GGP 3
#define IPENCAP 4
#define ST 5
#define TCP 6
#define EGP 8
#define PUP 9
#define UDP 17
#define HMP 20

